package gui.dados.cliente;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import negocio.cliente.Cliente;

import dados.cliente.CadastroDeCliente;

public class TelaCliente extends JFrame implements ActionListener {

	private JButton btTelaAlterar, btExcluir, btConsultar, btTelaCadastrar;
	public static JTextField txtTelefoneFixo;
	private JTextArea txtCampoDeDados, txtCampoDeDados2;

	public TelaCliente(String titulo, int largura, int altura) {
		super(titulo);
		this.setBounds(0, 0, largura, altura);
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		this.configurarTela();
		setVisible(true);
	}

	public void configurarTela() {
		this.btTelaCadastrar = new JButton("Cadastrar cliente");
		this.btConsultar = new JButton("Consultar cliente");
		this.btTelaAlterar = new JButton("Alterar dados");
		this.btExcluir = new JButton("Excluir dados");

		btTelaAlterar.addActionListener(this);
		btTelaCadastrar.addActionListener(this);

		this.txtTelefoneFixo = new JTextField(5);
		this.txtCampoDeDados = new JTextArea(20, 6);
		this.txtCampoDeDados2 = new JTextArea(20, 6);

		BorderLayout bl = new BorderLayout();
		setLayout(bl);

		JPanel painelSuperior = new JPanel();
		JPanel painelCentro = new JPanel();
		JPanel painelInferior = new JPanel();

		add(painelSuperior, BorderLayout.NORTH);
		add(painelCentro, BorderLayout.CENTER);
		add(painelInferior, BorderLayout.SOUTH);

		painelSuperior.setBackground(Color.white);
		painelCentro.setBackground(Color.white);
		painelInferior.setBackground(Color.red);

		painelCentro.setLayout(new GridLayout(3, 2));
		painelCentro.add(new JLabel("Campo de dados"));
		painelCentro.add(btTelaCadastrar);
		painelCentro.add(txtCampoDeDados);
		painelCentro.add(btTelaAlterar);
		painelCentro.add(txtCampoDeDados2);
		painelCentro.add(btExcluir);

		painelSuperior.setLayout(new GridLayout(1, 3));
		painelSuperior.add(new JLabel("Insira o telefone fixo: "));
		painelSuperior.add(txtTelefoneFixo);
		painelSuperior.add(btConsultar);

		painelInferior.add(new JLabel("CopyRigth UFRPE BSI 2� per�odo 2013"));

		btConsultar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				txtCampoDeDados.setText("");
				txtCampoDeDados2.setText("");
				String telefoneFixo = txtTelefoneFixo.getText();
				try {

					txtCampoDeDados.setText("Nome: "
							+ (TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getNome())
							+ "\nTelefone Fixo: "
							+ TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getTelefoneFixo()
							+ "\nTelefone celular: "
							+ TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getTelefoneCelular());

					txtCampoDeDados2.setText("\nRua: "
							+ (TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getRua()
							+ "\nN�mero: "
							+ TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getNumero()
							+ "\nBairro: "
							+ TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getBairro()
							+ "\nCidade: "
							+ TelaCadastrarCliente.cdc.recuperarCliente(telefoneFixo)
									.getCidade()));

				} catch (Exception e) {
					JOptionPane
							.showMessageDialog(null,
									"A chave de busca est� errada ou o cliente n�o existe");
				}

			}
		});

		btExcluir.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				String telefoneFixo = txtTelefoneFixo.getText();
				try {
					if (telefoneFixo.length() !=0){
					TelaCadastrarCliente.cdc.excluirCliente(telefoneFixo);
					txtCampoDeDados.setText("");
					txtCampoDeDados2.setText("");
					JOptionPane.showMessageDialog(null,
							"Cliente exclu�do com sucesso.");
					}else{
						JOptionPane.showMessageDialog(null, "Insira o telefone do cliente a ser exclu�do");
					}
				} catch (Exception e2) {
					JOptionPane
							.showMessageDialog(null,
									"A chave de busca foi digitada incorretamente ou o cliente n�o existe");
				}

			}
		});

	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btTelaCadastrar) {
			new TelaCadastrarCliente("Tela de Cadastro de cliente", 500, 400);

		} else if (e.getSource() == btTelaAlterar) {
			new TelaAlterarCliente("Tela de altera��o de cliente", 500, 400);
		}

	};

}
